/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Form;

import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import javax.swing.GroupLayout.Alignment;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;

/**
 * 
 * @author LM.LOVE
 */
public class MaintenanceStationForm extends javax.swing.JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Creates new form MaintenanceStation
	 */
	public MaintenanceStationForm(String maintenanceSID) {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent mEvent) {
				maintenanceSH.releaseAdminRole();
			}
		});
		initComponents();
		this.maintenanceSID = maintenanceSID;
		maintenanceSH = new MaintenanceStationHandling(maintenanceSID);
		showOnForm();
		doTaskCheckDamaged();

	}

	/* Ham nay dung de cap nhat lai List Station sau khi da them 1 Station moi */
	private void doUpdateListStation() {
		// Xoa het phan tu truoc khi cap nhat
		dlmStation.removeAllElements();
		// Lay tat ca phan tu FORM Station
		List<WeatherStationForm> lWSF = maintenanceSH.getlWeatherSF();
		// Sau do bo vao list Station
		for (WeatherStationForm wSF : lWSF) {
			dlmStation.addElement("Weather Station "
					+ wSF.getWeatherSH().getStationID());
		}
		listStation.setModel(dlmStation);
	}

	/*
	 * Ham nay dung de kiem tra cac may WeatherStation co bi hong hay khongCu
	 * 10s kiem tra 1 lan
	 */
	public void doTaskCheckDamaged() {
		if (timer == null) {
			timer = new Timer();
			TimerTask task = new TimerTask() {

				@Override
				public void run() {
					stationDamangedValueLabel.setText(Integer
							.toString(maintenanceSH.numberStationDamaged()));
				}
			};
			timer.schedule(task, 10000, 10000);
		}
	}

	/*
	 * Ham nay dung de cap nhat lai list WeatherStation sau khi chay
	 * MaintenanceStation
	 */
	public void showOnForm() {
		DefaultListModel<String> dlmWeatherSF = maintenanceSH
				.getDefaultListModelWSF();
		listStation.setModel(dlmWeatherSF);
		listStation.setSelectedIndex(0);

	}

	/**
	 * This method is called from within the constructor to initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is always
	 * regenerated by the Form Editor.
	 */
	// <editor-fold defaultstate="collapsed"
	// desc="Generated Code">//GEN-BEGIN:initComponents
	private void initComponents() {

		maintainPanel = new javax.swing.JPanel();
		listStationPanel = new javax.swing.JPanel();
		scrollListStation = new javax.swing.JScrollPane();
		listStation = new javax.swing.JList<String>();
		dlmStation = new DefaultListModel<String>();
		listStation.setModel(dlmStation);
		listStation.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		actionPanel = new javax.swing.JPanel();
		viewButton = new javax.swing.JButton();
		viewButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent mEvent) {
				maintenanceSH.showWeatherStationForm(listStation
						.getSelectedIndex());
			}
		});
		backupButton = new javax.swing.JButton();
		controllAllButton = new javax.swing.JButton();
		controllAllButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent mEvent) {
				if (onOffLabel.getText().equals("On")) {
					if (maintenanceSH.controlAll(false)) {
						JOptionPane.showMessageDialog(null,
								"Release successfully");
						onOffLabel.setText("Off");
					} else {
						JOptionPane.showMessageDialog(null,
								"Release unsuccessfully");
					}
				} else {
					if (maintenanceSH.controlAll(true)) {
						JOptionPane.showMessageDialog(null,
								"Control successfully");
						onOffLabel.setText("On");
					} else {
						JOptionPane.showMessageDialog(null,
								"Control unsuccessfully");
					}
				}
			}
		});
		onOffLabel = new javax.swing.JLabel();
		controllAllButton1 = new javax.swing.JButton();
		stationDamagedLabel = new javax.swing.JLabel();
		stationDamangedValueLabel = new javax.swing.JLabel();
		searchPanel = new javax.swing.JPanel();
		nameOfStationLabel = new javax.swing.JLabel();
		nameOfStationField = new javax.swing.JTextField();
		nameOfStationField.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent mEvent) {
				nameOfStationField.setText("");
			}
		});
		nameOfStationField.setText("Type the station'name you want to search");
		nameOfStationField.setFont(new Font("Tahoma", Font.BOLD, 14));
		scrollListStationSearch = new javax.swing.JScrollPane();
		listStationSearch = new javax.swing.JList<String>();
		dlmSearch = new DefaultListModel<String>();
		listStationSearch.setModel(dlmSearch);
		searchButton = new javax.swing.JButton();
		searchButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent mEvent) {
				List<String> stationNames = maintenanceSH
						.Search(nameOfStationField.getText());
				dlmSearch.removeAllElements();
				if (stationNames.size() > 0) {
					/* dlmSearch = new DefaultListModel<String>(); */
					for (String name : stationNames) {
						dlmSearch.addElement(name);
					}
					listStationSearch.setModel(dlmSearch);

				} else {
					JOptionPane.showMessageDialog(null, "Name not found");
				}

			}
		});

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
		setName("MaintenanceStationfrm"); // NOI18N

		maintainPanel.setBorder(javax.swing.BorderFactory
				.createTitledBorder("Manage and Maintenance Station"));

		listStationPanel.setBorder(javax.swing.BorderFactory
				.createTitledBorder("List Stations"));

		scrollListStation.setViewportView(listStation);

		JButton btnAddStation = new JButton("Add more Station");
		btnAddStation.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent mEvent) {
				if (txtIdStation.getText().equals("")) {
					JOptionPane.showMessageDialog(null,
							"Please type the Station Id you want to create!!!");
					return;
				}

				// Tao hop thoai de confirm
				int dialogResult = JOptionPane.showConfirmDialog(null,
						"Confirm create Station ?", "warning",
						JOptionPane.YES_NO_OPTION);
				// Neu nguoi dung chon Yes
				if (dialogResult == JOptionPane.YES_OPTION) {
					if (maintenanceSH.addNewStation(txtIdStation.getText())) {
						JOptionPane.showMessageDialog(null,
								"Add station successfully");
						doUpdateListStation();
						txtIdStation.setText("");
					} else {
						JOptionPane
								.showMessageDialog(null,
										"The ID of Station is already existed, please choose another one!!!");
					}

				} else {// Neu nguoi dung chon No
					return;
				}

			}

		});
		btnAddStation.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 13));

		txtIdStation = new JTextField();
		txtIdStation.setColumns(10);

		javax.swing.GroupLayout listStationPanelLayout = new javax.swing.GroupLayout(
				listStationPanel);
		listStationPanelLayout
				.setHorizontalGroup(listStationPanelLayout
						.createParallelGroup(Alignment.LEADING)
						.addGroup(
								Alignment.TRAILING,
								listStationPanelLayout
										.createSequentialGroup()
										.addGap(21)
										.addGroup(
												listStationPanelLayout
														.createParallelGroup(
																Alignment.TRAILING)
														.addComponent(
																txtIdStation,
																Alignment.LEADING,
																GroupLayout.DEFAULT_SIZE,
																147,
																Short.MAX_VALUE)
														.addComponent(
																scrollListStation,
																Alignment.LEADING,
																GroupLayout.DEFAULT_SIZE,
																147,
																Short.MAX_VALUE)
														.addComponent(
																btnAddStation,
																Alignment.LEADING,
																GroupLayout.DEFAULT_SIZE,
																GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE))
										.addGap(33)));
		listStationPanelLayout.setVerticalGroup(listStationPanelLayout
				.createParallelGroup(Alignment.LEADING).addGroup(
						listStationPanelLayout
								.createSequentialGroup()
								.addContainerGap()
								.addComponent(scrollListStation,
										GroupLayout.PREFERRED_SIZE, 183,
										GroupLayout.PREFERRED_SIZE)
								.addPreferredGap(ComponentPlacement.UNRELATED)
								.addComponent(txtIdStation,
										GroupLayout.PREFERRED_SIZE,
										GroupLayout.DEFAULT_SIZE,
										GroupLayout.PREFERRED_SIZE)
								.addGap(11)
								.addComponent(btnAddStation,
										GroupLayout.DEFAULT_SIZE,
										GroupLayout.DEFAULT_SIZE,
										Short.MAX_VALUE).addContainerGap()));
		listStationPanel.setLayout(listStationPanelLayout);

		actionPanel.setBorder(javax.swing.BorderFactory
				.createTitledBorder("Action"));

		viewButton.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
		viewButton.setText("View");

		backupButton.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
		backupButton.setText("Back up data");

		javax.swing.GroupLayout actionPanelLayout = new javax.swing.GroupLayout(
				actionPanel);
		actionPanel.setLayout(actionPanelLayout);
		actionPanelLayout
				.setHorizontalGroup(actionPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								javax.swing.GroupLayout.Alignment.TRAILING,
								actionPanelLayout
										.createSequentialGroup()
										.addContainerGap(
												javax.swing.GroupLayout.DEFAULT_SIZE,
												Short.MAX_VALUE)
										.addGroup(
												actionPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.TRAILING)
														.addComponent(
																backupButton,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																253,
																javax.swing.GroupLayout.PREFERRED_SIZE)
														.addComponent(
																viewButton,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																253,
																javax.swing.GroupLayout.PREFERRED_SIZE))
										.addGap(38, 38, 38)));
		actionPanelLayout
				.setVerticalGroup(actionPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								actionPanelLayout
										.createSequentialGroup()
										.addContainerGap()
										.addComponent(
												viewButton,
												javax.swing.GroupLayout.PREFERRED_SIZE,
												31,
												javax.swing.GroupLayout.PREFERRED_SIZE)
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED,
												29, Short.MAX_VALUE)
										.addComponent(
												backupButton,
												javax.swing.GroupLayout.PREFERRED_SIZE,
												31,
												javax.swing.GroupLayout.PREFERRED_SIZE)
										.addContainerGap()));

		controllAllButton.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
		controllAllButton.setText("Control All");

		onOffLabel.setFont(new java.awt.Font("Tahoma", 1, 36)); // NOI18N
		onOffLabel.setText("Off");

		controllAllButton1.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
		controllAllButton1.setText("Back up all stations");

		stationDamagedLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
		stationDamagedLabel.setText("Number Station damaged");

		stationDamangedValueLabel.setFont(new java.awt.Font("Tahoma", 0, 36)); // NOI18N
		stationDamangedValueLabel.setText("0");

		searchPanel.setBorder(javax.swing.BorderFactory
				.createTitledBorder("Search"));

		nameOfStationLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
		nameOfStationLabel.setText("Name of the Station");
		scrollListStationSearch.setViewportView(listStationSearch);

		searchButton.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
		searchButton.setText("Search");

		javax.swing.GroupLayout searchPanelLayout = new javax.swing.GroupLayout(
				searchPanel);
		searchPanel.setLayout(searchPanelLayout);
		searchPanelLayout
				.setHorizontalGroup(searchPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								searchPanelLayout
										.createSequentialGroup()
										.addGap(48, 48, 48)
										.addGroup(
												searchPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING,
																false)
														.addComponent(
																nameOfStationLabel,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE)
														.addComponent(
																searchButton,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE))
										.addGap(95, 95, 95)
										.addGroup(
												searchPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING,
																false)
														.addComponent(
																scrollListStationSearch,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																280,
																Short.MAX_VALUE)
														.addComponent(
																nameOfStationField))
										.addContainerGap(
												javax.swing.GroupLayout.DEFAULT_SIZE,
												Short.MAX_VALUE)));
		searchPanelLayout
				.setVerticalGroup(searchPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								searchPanelLayout
										.createSequentialGroup()
										.addContainerGap()
										.addGroup(
												searchPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(
																nameOfStationLabel)
														.addComponent(
																nameOfStationField,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE))
										.addGap(18, 18, 18)
										.addGroup(
												searchPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addComponent(
																scrollListStationSearch,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																0,
																Short.MAX_VALUE)
														.addGroup(
																searchPanelLayout
																		.createSequentialGroup()
																		.addComponent(
																				searchButton,
																				javax.swing.GroupLayout.PREFERRED_SIZE,
																				41,
																				javax.swing.GroupLayout.PREFERRED_SIZE)
																		.addGap(0,
																				40,
																				Short.MAX_VALUE)))
										.addContainerGap()));

		javax.swing.GroupLayout maintainPanelLayout = new javax.swing.GroupLayout(
				maintainPanel);
		maintainPanel.setLayout(maintainPanelLayout);
		maintainPanelLayout
				.setHorizontalGroup(maintainPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								javax.swing.GroupLayout.Alignment.TRAILING,
								maintainPanelLayout
										.createSequentialGroup()
										.addGap(35, 35, 35)
										.addGroup(
												maintainPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.TRAILING)
														.addComponent(
																searchPanel,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE)
														.addGroup(
																maintainPanelLayout
																		.createSequentialGroup()
																		.addComponent(
																				listStationPanel,
																				javax.swing.GroupLayout.PREFERRED_SIZE,
																				javax.swing.GroupLayout.DEFAULT_SIZE,
																				javax.swing.GroupLayout.PREFERRED_SIZE)
																		.addGap(38,
																				38,
																				38)
																		.addGroup(
																				maintainPanelLayout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.LEADING)
																						.addGroup(
																								maintainPanelLayout
																										.createSequentialGroup()
																										.addComponent(
																												stationDamagedLabel)
																										.addPreferredGap(
																												javax.swing.LayoutStyle.ComponentPlacement.RELATED,
																												javax.swing.GroupLayout.DEFAULT_SIZE,
																												Short.MAX_VALUE)
																										.addComponent(
																												stationDamangedValueLabel,
																												javax.swing.GroupLayout.PREFERRED_SIZE,
																												34,
																												javax.swing.GroupLayout.PREFERRED_SIZE)
																										.addGap(27,
																												27,
																												27))
																						.addComponent(
																								actionPanel,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								Short.MAX_VALUE)
																						.addGroup(
																								maintainPanelLayout
																										.createSequentialGroup()
																										.addComponent(
																												controllAllButton,
																												javax.swing.GroupLayout.PREFERRED_SIZE,
																												237,
																												javax.swing.GroupLayout.PREFERRED_SIZE)
																										.addGap(29,
																												29,
																												29)
																										.addComponent(
																												onOffLabel,
																												javax.swing.GroupLayout.DEFAULT_SIZE,
																												81,
																												Short.MAX_VALUE))
																						.addComponent(
																								controllAllButton1,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								Short.MAX_VALUE))))
										.addGap(36, 36, 36)));
		maintainPanelLayout
				.setVerticalGroup(maintainPanelLayout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								maintainPanelLayout
										.createSequentialGroup()
										.addGap(21, 21, 21)
										.addGroup(
												maintainPanelLayout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING,
																false)
														.addComponent(
																listStationPanel,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE)
														.addGroup(
																maintainPanelLayout
																		.createSequentialGroup()
																		.addComponent(
																				actionPanel,
																				javax.swing.GroupLayout.PREFERRED_SIZE,
																				javax.swing.GroupLayout.DEFAULT_SIZE,
																				javax.swing.GroupLayout.PREFERRED_SIZE)
																		.addGap(18,
																				18,
																				18)
																		.addGroup(
																				maintainPanelLayout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.LEADING)
																						.addComponent(
																								onOffLabel,
																								javax.swing.GroupLayout.PREFERRED_SIZE,
																								39,
																								javax.swing.GroupLayout.PREFERRED_SIZE)
																						.addComponent(
																								controllAllButton,
																								javax.swing.GroupLayout.PREFERRED_SIZE,
																								39,
																								javax.swing.GroupLayout.PREFERRED_SIZE))
																		.addPreferredGap(
																				javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																		.addComponent(
																				controllAllButton1,
																				javax.swing.GroupLayout.PREFERRED_SIZE,
																				39,
																				javax.swing.GroupLayout.PREFERRED_SIZE)
																		.addPreferredGap(
																				javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
																		.addGroup(
																				maintainPanelLayout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.BASELINE)
																						.addComponent(
																								stationDamagedLabel)
																						.addComponent(
																								stationDamangedValueLabel))))
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
										.addComponent(
												searchPanel,
												javax.swing.GroupLayout.DEFAULT_SIZE,
												javax.swing.GroupLayout.DEFAULT_SIZE,
												Short.MAX_VALUE)
										.addContainerGap()));

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				layout.createSequentialGroup()
						.addGap(23, 23, 23)
						.addComponent(maintainPanel,
								javax.swing.GroupLayout.PREFERRED_SIZE,
								javax.swing.GroupLayout.DEFAULT_SIZE,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addContainerGap(24, Short.MAX_VALUE)));
		layout.setVerticalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				layout.createSequentialGroup()
						.addContainerGap()
						.addComponent(maintainPanel,
								javax.swing.GroupLayout.PREFERRED_SIZE,
								javax.swing.GroupLayout.DEFAULT_SIZE,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
								Short.MAX_VALUE)));

		pack();
		validate();
	}// </editor-fold>//GEN-END:initComponents

	/**
	 * @param args
	 *            the command line arguments
	 */
	/*
	 * public static void main(String args[]) {
	 * java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
	 * WeatherStationForm WS1 = new WeatherStationForm("WS01");
	 * WS1.setVisible(true); WeatherStationForm WS2 = new
	 * WeatherStationForm("WS02"); new
	 * MaintenanceStationForm("MS01").setVisible(true);
	 * 
	 * } }); }
	 */

	// Variables declaration - do not modify//GEN-BEGIN:variables
	private javax.swing.JPanel actionPanel;
	private javax.swing.JButton backupButton;
	private javax.swing.JButton controllAllButton;
	private javax.swing.JButton controllAllButton1;
	private javax.swing.JList<String> listStation;
	private javax.swing.JPanel listStationPanel;
	private javax.swing.JList<String> listStationSearch;
	private javax.swing.JPanel maintainPanel;
	private javax.swing.JTextField nameOfStationField;
	private javax.swing.JLabel nameOfStationLabel;
	private javax.swing.JLabel onOffLabel;
	private javax.swing.JScrollPane scrollListStation;
	private javax.swing.JScrollPane scrollListStationSearch;
	private javax.swing.JButton searchButton;
	private javax.swing.JPanel searchPanel;
	private javax.swing.JLabel stationDamagedLabel;
	private javax.swing.JLabel stationDamangedValueLabel;
	private javax.swing.JButton viewButton;
	private DefaultListModel<String> dlmSearch;
	private DefaultListModel<String> dlmStation;

	private MaintenanceStationHandling maintenanceSH;
	private String maintenanceSID = null;

	// End of variables declaration//GEN-END:variables

	private Timer timer = null;

	public Timer getTimer() {
		return timer;
	}

	public void setTimer(Timer timer) {
		this.timer = timer;
	}

	private JTextField txtIdStation;

	public String getMaintenanceSID() {
		return maintenanceSID;
	}

	public void setMaintenanceSID(String maintenanceSID) {
		this.maintenanceSID = maintenanceSID;
	}

	public MaintenanceStationHandling getMaintenanceSH() {
		return maintenanceSH;
	}

	public void setMaintenanceSH(MaintenanceStationHandling maintenanceSH) {
		this.maintenanceSH = maintenanceSH;
	}
}
